package com.base.monitor.model.model.biz.cfg.entity;

import com.base.monitor.model.model.biz.cfg.vo.IndicatorDeviceGatewayVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.BeanUtils;

import java.util.Date;

/**
 * @description: 指标管理页面显示的数据结构
 * @author: tsing
 * @create: 2021-06-17 22:30
 */
@Data
@NoArgsConstructor
public class Indicator {
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long gatewayId;
    private String gatewayIp;
    private String deviceName;
    private String installPos;

    // 指标id
    private String indicatorId;

    // 指标名称
    private String indicatorName;

    // 采集频率
    private Integer frequency;

    // 采集命令
    private String command;

    // 命令前缀
    private String commandPrefix;

    // 命令后缀
    private String commandSuffix;

    // 数据的开始位
    private Integer startBit;

    // 取多少为数据，和startBit联用
    private String takeBit;

    // 是否反转。0不反转，1反转
    private Integer reverse;

    // 校验的协议
    private String authCode;

    // 是否解析为浮点数，0不是，1是
    private Integer floatable;

    // 设备id
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long deviceId;

    // 读取进制（暂时支持十进制10和十六进制16）
    private Integer readScale;

    // 解析进制（暂时支持十进制10、二进制2和ascii码0）
    private String parseScale;

    // 倍数
    private String multiple;

    // 串口号
    private Integer serialNumber;

    // 在线时间
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", locale="zh", timezone="GMT+8")
    private Date onlineTime;

    // 是否在线
    private Integer status;

    public Indicator(IndicatorDeviceGatewayVo vo) {
        BeanUtils.copyProperties(vo, this);
        this.deviceName = vo.getEqpName();
        this.installPos = vo.getEqpInstallPos();
        this.indicatorName = vo.getIndexName();
        this.indicatorId = vo.getIndexId();
    }
}
